import axios from 'axios'
import { useAuthStore } from '@/stores/auth'
import { ElMessage } from 'element-plus'

// 使用Vite代理配置，不需要baseURL前缀
const http = axios.create({ 
  baseURL: '', // 移除/api前缀，让Vite代理处理
  timeout: 10000 // 10秒超时
})

http.interceptors.request.use((config) => {
  try {
    const auth = useAuthStore()
    if (auth?.token) {
      config.headers = config.headers || {}
      config.headers.Authorization = `Bearer ${auth.token}`
    }
  } catch {}
  return config
})

// 添加响应拦截器
http.interceptors.response.use(
  (response) => {
    return response
  },
  (error) => {
    console.error('HTTP Error:', error)
    
    if (error.response) {
      // 服务器响应了错误状态码
      console.error('Response data:', error.response.data)
      console.error('Response status:', error.response.status)
      console.error('Response headers:', error.response.headers)
      
      if (error.response.status === 404) {
        ElMessage.error('API端点未找到，请检查后端服务是否运行')
      } else if (error.response.status === 500) {
        ElMessage.error('服务器内部错误')
      } else {
        ElMessage.error(`请求失败: ${error.response.status}`)
      }
    } else if (error.request) {
      // 请求已发出但没有收到响应
      console.error('No response received:', error.request)
      ElMessage.error('无法连接到服务器，请检查网络连接和后端服务状态')
    } else {
      // 请求设置时出错
      console.error('Request setup error:', error.message)
      ElMessage.error('请求设置错误')
    }
    
    return Promise.reject(error)
  }
)

export default http


